//小爬虫   
//安装模块化工具 cheerio --- npm install cheerio
//cheerio是nodejs的抓取页面模块，为服务器特别定制的，快速、灵活、实施的jQuery核心实现。适合各种Web爬虫程序。
var http = require('http');
var cheerio = require('cheerio');
var url = 'http://www.imooc.com/learn/348';

//爬去指定数据
function filterChapters(html){
	var $ = cheerio.load(html);
	var chapters = $('.chapter');
	
	//数据结构
//	[{
//		chapterTitle: '',
//		videos: [
//			title: '',
//			id: ''
//		]
//	}]

	var courseData = [];
	chapters.each(function(item){
		var chapter = $(this);
		var chapterTitle = chapter.find('strong').text();
		var videos = chapter.find('.video').children('li');
		var chapterData = {
			chapterTitile: chapterTitle,
			videos:[]
		};
		
		videos.each(function(item) {
			var video = $(this).find('.studyvideo');
			var videoTitle = video.text();
			var id = video.attr('href').split('video/')[1];
			
			chapterData.videos.push({
				title: videoTitle,
				id: id
			})
			
		});
		courseData.push(chapterData);
	});
	return courseData;
}
//输出数据
function printCourseInfo(courseData) {
	courseData.forEach(function(item) {
		var chapterTitle = item.chapterTitile;
		
		console.log(chapterTitle+ '\n');
		
		item.videos.forEach(function(video) {
			console.log('  【'+ video.id+'】'+video.title+'\n');
		})
		
	});
}

http.get(url, function(res) {
	var html = '';
	
	res.on('data', function(data){
		html += data;
	});
	
	res.on('end', function(){
		var courseData = filterChapters(html);
		
		printCourseInfo(courseData);
	});
}).on('error', function(){
	console.log('出错！！！');
});
